{{tag>Karmic bureau_à_distance tutoriel BROUILLON}}

----
====== XRDP ou comment se connecter depuis un client RDP® sur un serveur Ubuntu======

On peut être confronté à des machines windows<sup>®</sup> verrouillées, sur lesquelles on ne peut rien installer, et où seul le protocole [[wpfr>Remote_Desktop_Protocol|RDP®]] est disponible. Par exemple des [[wpfr>Client_léger|clients légers]].

Si l'on souhaite se connecter depuis ces machines sur un serveur Ubuntu, une seule solution : installer XRDP sur ce dernier.

===== Prérequis =====

Savoir installer un paquet, éditer un fichier et éventuellement contrôler la machine distante à l'aide d'un autre protocole, typiquement ssh.

===== Présentation =====

Xrdp est une couche s'installant sur le serveur. Elle fait office de serveur RDP<sup>®</sup> pour le client qui veut se connecter, et se comporte comme un client VNC pour le serveur ubuntu.

Entre les deux, se glisse un gestionnaire de session dénommé sesman, qui :
  * donne le choix, à la connexion, entre différents modules. Ceux-ci sont listés dans /etc/xrdp/xrdp.ini, on y trouve bien sûr VNC.
  * appelle PAM pour l'authentification.
  * fait en sorte que le néo client VNC, avatar du client RDP, se connecte à une session VNC fonctionnelle. Le plus souvent en la créant, à l'aide des paramètres choisis dans /etc/xrdp/sesman.ini et /etc/xrdp/startwm.sh.

===== Installation =====

[[:tutoriel:comment_installer_un_paquet|Installez les paquets]] **[[apt://xrdp,vnc4server|xrdp vnc4server]]**.

La dernière version de XRDP est la 0.4.1, elle est présente dans les dépôts.

===== Configuration =====

Pour l'instant, rien ne fonctionne, car la section [Xvnc] du fichier /etc/xrdp/sesman.ini ne contient que deux arguments :
<code>
param1=-bs     /* désactive le "backing store support" sur tous les écrans */
param2=-ac     /* interdit l'édition des listes de contrôle d'accès par le client */
</code>

Il faut donc en compléter la section [Xvnc] avec :
<code>param3=-fp
param4=/usr/share/fonts/X11/misc
param5=-extension
param6=XFIXES</code>

Personnellement, j'y ai aussi ajouté :

<code>param7=-depth
param8=16
param9=-localhost
param10=-NeverShared</code>

On peut aussi ajuster les autres paramètres à sa convenance (sections [Globals], [Security], etc. ...). N'oublions pas de redémarrer avec :

<code>sudo /etc/init.d/xrdp restart</code>

Pour finir, on peut modifier le fichier /etc/xrdp/xrdp.ini, pour n'y laisser paraître que la connexion que nous avons correctement ajustée. On conserve simplement les sections [globals] et [xrdp1] que l'on renomme pour le fun :

<code>[globals]
bitmap_cache=yes
bitmap_compression=yes
port=3389
crypt_level=low
channel_code=1
 
[xrdp1]
name=legaub vous invite sur un serveur Ubuntu
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
</code>

Redémarrons le service. Vous pouvez désormais vous connecter à votre serveur en utilisant le protocole RDP<sup>®</sup>.

===== Problème de configuration =====

Une nouvelle difficulté surgit si l'on veut passer, par exemple -DisconnectClient=0. En effet, impossible de glisser le signe "=" nulle part.

On s'en sort grâce au script /etc/xrdp/startwm.sh auquel on ajoute la ligne suivante :

<code>vncconfig -set DisconnectClients=0</code>
pour avoir finalement :
<code bash>
#!/bin/sh
 
if [ -r /etc/default/locale ]; then
  . /etc/default/locale
  export LANG LANGUAGE
fi
 
vncconfig -set DisconnectClients=0
 
. /etc/X11/Xsession
</code>

Attention, l'utilisation de "vncconfig" fait que le nouveau paramètre ne sera pris en compte que lors du démarrage d'une nouvelle session.

===== Désinstallation =====

===== Liens =====

  * [[http://xrdp.sourceforge.net/|(en) XRDP chez sourceforge.]]
  * [[:vnc|VNC (Virtual Network Computing)]] sur la documentation ubuntu-fr.
  * [[http://planet.ubuntu-fr.org/post/2007/06/04/Connexion-a-Ubuntu-Linux-a-partir-de-windows-:-xrdp|Le tuto de juin 2007]] sur planet ubuntu-fr, qui présente bien l'aspect théorique.
  * [[http://forum.ubuntu-fr.org/viewtopic.php?id=372863|RDP sur un serveur ubuntu ?]] sur le forum ubuntu-fr.

----

//Contributeurs principaux : [[http://perso.nordnet.fr/stephane.patin-gaubert/fiches/fiche16.html|legaub]]//